package com.winsdom.mapper;

import com.winsdom.domain.dto.collection.BillBaseDTO;
import com.winsdom.domain.dto.collection.BillDetailDTO;
import com.winsdom.domain.dto.collection.NotificationDefaultConfigDTO;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @Author: 陈文平
 * @CreateTime: 2025-05-23-15:38
 * @Description:
 * @Version: 1.0
 */
public interface CollectionMapper {
    /**
     * 根据用户ID查询其管辖楼盘的客户ID
     * @param userId 用户ID
     * @return 客户ID列表
     */
    List<Long> selectCustomerIdsByUserId(@Param("userId") Long userId);

    /**
     * 根据客户ID查询详细账单信息
     * @param customerId 客户ID
     * @return 账单详情列表
     */
    List<BillDetailDTO> selectCustomerBillDetails(@Param("customerId") Long customerId,@Param("arrearsStatus") String arrearsStatus);

    /**
     * 根据条件查询账单基础信息
     * @param params 包含查询条件的Map（buildingName、customerName、arrearsStatus）
     * @return 账单基础信息列表
     */
    List<BillBaseDTO> selectBillBaseInfo(@Param("params") Map<String, Object> params);

    int countDefaultConfig();

    void insertDefaultConfig(NotificationDefaultConfigDTO configDTO);

    void updateDefaultConfig(NotificationDefaultConfigDTO configDTO);

    NotificationDefaultConfigDTO selectDefaultConfig();



}
